<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>11-Object.defineProperty的使用</title>
</head>
<body>
  <script>
    // Object.defineProperty(obj,属性名,设置项) 用来设置单个属性
    const obj = {
      msg: 'abc'
    }
    // Object.defineProperty(obj, 'address', {
    //   value: '宝安区',
    //   writable:true,
    //   configurable:true,
    //   enumerable:true
    // })
    // let result = obj.msg
    // Object.defineProperty(obj, 'msg', {
    //   get() {
    //     // 当访问obj.msg的时候，会先执行get中的逻辑代码
    //     console.log(123)
    //     return result
    //   },
    //   set(val) {
    //     // 当设置值的时候，就会执行set中的代码
    //     console.log(456)
    //     result = val
    //   }
    // })
    // console.log(obj)
    // for (let key in obj) {
    //   console.log(key + '====' + obj[key])
    // }
    // obj.msg = 200

    let result;
    Object.defineProperty(obj,'phone',{
      get(){
        console.log('aaaaa')
        return result
      },
      set(val){
        console.log('bbbbb')
        result = val
      }
    })
    obj.phone = '13112345678'
    console.log(obj.phone)
  </script>
</body>
</html>